@echo off
echo ========================================
echo    Docker 网络问题修复脚本
echo ========================================
echo.

:: 检查Docker是否运行
echo 🔍 检查Docker状态...
docker info >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ Docker Desktop未运行，请先启动Docker Desktop
    pause
    exit /b 1
)

echo ✅ Docker Desktop运行正常

:: 测试网络连接
echo.
echo 🌐 测试Docker Hub连接...
docker pull hello-world >nul 2>&1
if %errorlevel% neq 0 (
    echo ⚠️  Docker Hub连接有问题
    echo 💡 可能的解决方案:
    echo    1. 检查网络连接
    echo    2. 配置代理设置
    echo    3. 重启Docker Desktop
    echo    4. 检查防火墙设置
    echo.
    
    :: 提供手动配置指导
    echo 📝 手动配置Docker Desktop代理:
    echo    1. 打开Docker Desktop
    echo    2. 进入Settings ^> Resources ^> Proxies
    echo    3. 配置HTTP/HTTPS代理 (如果需要)
    echo    4. 重启Docker Desktop
    echo.
    
    set /p choice="是否继续尝试修复? (y/n): "
    if /i "%choice%" neq "y" (
        echo 操作已取消
        pause
        exit /b 1
    )
) else (
    echo ✅ Docker Hub连接正常
    docker rmi hello-world >nul 2>&1
)

:: 禁用BuildKit
echo.
echo 🔧 配置Docker环境变量...
setx DOCKER_BUILDKIT "0" >nul 2>&1
set DOCKER_BUILDKIT=0
echo ✅ 已禁用Docker BuildKit

:: 清理Docker缓存和网络
echo.
echo 🧹 清理Docker缓存和网络...
docker system prune -f >nul 2>&1
docker network prune -f >nul 2>&1
echo ✅ Docker清理完成

:: 测试Node.js镜像拉取
echo.
echo 📦 测试Node.js镜像拉取...
docker pull node:14.21.3-bullseye
if %errorlevel% neq 0 (
    echo ❌ Node.js镜像拉取失败
    echo 💡 网络问题可能需要手动解决
    echo.
    echo 🔧 可尝试的解决方案:
    echo    1. 使用VPN或代理
    echo    2. 配置Docker Desktop镜像源
    echo    3. 联系网络管理员
    pause
    exit /b 1
) else (
    echo ✅ Node.js镜像拉取成功
)

echo.
echo ========================================
echo ✅ Docker网络问题修复完成！
echo ========================================
echo.
echo 💡 修复内容:
echo    1. 验证了Docker Hub连接
echo    2. 禁用了Docker BuildKit
echo    3. 清理了Docker缓存
echo    4. 预拉取了Node.js镜像
echo.
echo 现在可以重新尝试构建项目了！
echo.
pause
